package com.panshi.mapper;

import com.panshi.api.util.PageSizeVO;
import com.panshi.bean.*;
import io.swagger.annotations.ApiOperation;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.GetMapping;

import javax.mail.MessagingException;
import java.util.List;

@Mapper
public interface IssMapper {
    public List<IssBean> findAllIss(PageUtil page);//查询所有问题(全部,主题,已回答未回答)
    public List<IssBean> findAllIss2(PageUtil page);//查询所有问题(全部,主题,已回答未回答)====首页的热榜
    public List<IssBean> findAllIss3(PageUtil page);//查询所有问题(全部,主题,已回答未回答)=====首页的最新


    public List<IssBean> findAllTid();//查询所有主题

    public int initIss(IssBean iss);//用户提出问题存入未审核表
    public int initIssImg(ImageBean img);//用户提出问题的图片存入图片表

    public int deleteIssImg(int qid,int state); //删除问题的图片(问题审核表和问题表)
    public List<Integer> getByQidFindAns(int qid); //查该问题下有多少个回答,一一删除
    public int deleteQaAnswer(int qid);
    public List<Integer> getByQidFindAnsNo(int qid); //查该问题下有多少个回答,一一删除(回答审核表)
    public int deleteQaAnswerNo(int qid);
    public int deleteQaAnsCom(int qid);//删除问题里回答的评论
    public int deleteQaAnsLike(int qid);//删除问题里回答的点赞
    public int deleteIssNo(int qid); //用户审核表删除自己提出的问题(判断去审核表删还是问题表删)
    public int deleteIss(int qid); //用户问题表删除自己提出的问题(判断去审核表删还是问题表删)
    public int deleteUserQaCount(int uid); //用户表提问总数-1


    public List<AnswerBean> getByQidAnswer(int qid);//查询该问题下的所有回答
    public IssBean getByQid(int qid);//用户点击某个个问题根据问题id查询数据
    public int addReadCount(int qid);//问题表阅读数加1

    public int initColl(int uid,int qid);//用户点击收藏
    public IssCollBean findColl(int uid, int qid);//查询用户在某问题是否点赞收藏
    public int updateQa(int qid);//修改问题表的收藏量
    public int findCollCount(int qid);//重新查询收藏数返给前台


    public List<IssBean> findHostIss(int tid,int i); //大家都在问
    public List<IssBean> aboutQa(int tid);//点击问题后右边的相关推荐

    public List<ColumnBean> findColumn();//查询栏目信息

    public int userMessage(UserMessageBean um);//用户留言





    //管理员接口==========================================================================================================
    public List<IssBean> adminFindAll(PageSizeVO pageSizeVO);//管理员查询所有问题
    public List<IssBean> adminFindNoAll(PageSizeVO pageSizeVO);//管理员问题审核表所有问题

    public int adminFindAllSum(int state);//管理员查询问题表的总记录数
    public int adminFindNoAllSum(int state);//管理员问题审核表总记录数

    public int adminUpdateQa(int qid,int state,int tid);//管理员修改回答表
    public int deleteQaDynamic(int qid);//下架时删除动态表数据
    public int deleteQaSearch(int qid);//删除搜索表


    public int initQa(IssBean iss); //管理员审核问题进入问题表 (删除审核表问题上面有方法)
    public int adminUpdateIssNo(IssBean iss);//修改审核表数据
    public int findSearchByAid(int qid);//查询搜索表数据是否已存在
    public int  findDynamicByQid(int qid);//查询动态表数据是否已存在
    public int addUserQaCount(int uid);  //给用户表的提问数+1

    public int addQaSearch(IssBean iss);//审核通过将问题存入搜索表(先查问题的主键)
    public int addQaInstation(IssBean iss);//审核后将问题存入站内消息表
    public int addDynamic(IssBean iss);//将问题存入动态表


    public int updateColumn(ColumnBean cb);//管理员修改栏目
    public int initColumn(ColumnBean cb);//管理员增加栏目






    //审核通过给用户发送邮箱文件============================================================================================
    public void setemailquestion(Integer uid,Integer state,String title)throws MessagingException;
    public void setemailquestionno(Integer uid,Integer state,String title)throws MessagingException;

    public BeiUser selectById(int uid);//根据用户id查询用户信息
}